home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Game Master (3rd Edition)
/
The Game Master 3rd edition.iso
/
files
/
gametors
/
navy
/
fleet.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1980-01-01
|
26KB
|
865 lines
Program FLEET;
{This module will allow the player to select the fleets from his
navy. Fleets will be posted in the theaters given in the game
data file. Up to four theaters may be used.
Repeat
. Read map and display
. Clear all fleet assignments
. Do until all fleets OK
. . Display navy to right of map
. . Initialize all fleets
. . Set to first fleet
. . Do until all fleets selected
. . . Show selected ship status on demend
. . . Clear map fleet area
. . . If cursor at ships in port
. . . . Move cursor to select ship
. . . . Select ship on CR
. . . . Move ship from port to fleet
. . . Else
. . . . Restore fleet ships to ships in port
. . . End
. . End
. End
.
. Decrement damage of all Allied ships in port
. Randomly select Axis fleets
. Decrement damage of all Axis ships in port (if any)
.
. Engage in combat
. Clear all Work1 (shots taken)
. Set round to 0
. For each theater
. . Increment the round
. . Repeat until all surface ships on one side eliminated
. . . Randomly select Axis Combat followed by Allied Combat or vice versa
. . End
. End
.
. Calculate victory points
.
until victory point delta is five or as selected from input data set
Display winner}
{$ICOMMON.PAS}
{$IPUTPIC.PAS}
{$ICURSOR.PAS}
{$IBORDER.PAS}
{$IWIND.PAS}
{$IBEEP.PAS}
VAR list:array[1..20] of integer;
Allied_Total,Axis_Total,
Allied_Ship_Cnt,Axis_Ship_Cnt,
Allied_Sub_Cnt,Axis_Sub_Cnt,
Allied_Ship_No,Axis_Ship_No:integer;
Round:integer;
Sub_Shots,key,scnt,acnt,xcnt:integer;
Temp_Name:string[10];
Theamax:array[1..8] of integer;
init_no:real;
Cur_Ctl,Max_Ships,Assg_Ships,Turn:integer;
Procedure Ships_in_Port; {Display ships not assigned}
Begin {to a theater}
Gotoxy(66,1);
FastWrite('Ships in Port',7,0,1);
For i:=1 to Ships do
Begin
Gotoxy(67,i+2);
With Allied_Navy[i] do
If (Status<>9) and (Fleet=0) then
begin
If Theater=0 then FastWrite(' ',7,0,1)
else Fastwrite('*',7,0,1);
FastWrite(ID,7,0,1);
end
Else
FastWrite(' ',7,0,1);
end;
end;
Procedure Pick_Fleets;
begin
gotoxy(24,24);
Fastwrite('Enter ? for help',7,0,1);
theano:=1; {Display first theater}
cmax:=Theater[1].max;
ixloc:='p'; {Set location pointer to port}
portix:=1; {Set to first ship}
theaix:=1;
For i:=1 to theacnt do {Clear fleet assignments}
begin
For j:=1 to 20 do
begin
Allied_Fleet[i,j]:=0;
Axis_Fleet[i,j]:=0;
end;
end;
for i:= 1 to 20 do
begin
Allied_Navy[i].Fleet:=0;
Axis_Navy[i].Fleet:=0;
end;
Ships_in_Port;
TheaWind(theano);
repeat
begin
cx:=66; {Set cursor select position}
cy:=portix+2;
if ixloc='t' then
with Theater[theano] do
begin
cx:=x+1;
cy:=theaix+1+y;
cmax:=max;
end;
gotoxy(cx,cy);
Fastwrite(chr(26),15,0,3);
Uncursor;
l:=cursor; {Read character}
case l of
32: begin {Advance theater}
Restore;
theano:=theano+1;
if theano>theacnt then theano:=1;
TheaWind(theano);
theaix:=1;
cmax:=theater[theano].max;
end;
4: begin {Advance cursor}
if ixloc='p' then
begin
Cur_Ctl:=portix;
repeat
portix:=portix+1;
if portix>Ships then portix:=1;
until ((Allied_Navy[portix].fleet=0) and
(Allied_Navy[portix].status<>9)) or (portix=Cur_Ctl);
end
else
with theater[theano] do
begin
Cur_Ctl:=theaix;
repeat
theaix:=theaix+1;
if theaix>max then theaix:=1;
until (Allied_Fleet[theano,theaix]>0) or (theaix=Cur_Ctl);
end;
end;
3: begin {Decrement cursor}
if ixloc='p' then
begin
Cur_Ctl:=portix;
repeat
portix:=portix-1;
if portix<1 then portix:=Ships;
until ((Allied_Navy[portix].fleet=0) and
(Allied_Navy[portix].status<>9)) or
(portix=Cur_Ctl);
end
else
with theater[theano] do
begin
Cur_Ctl:=theaix;
repeat
theaix:=theaix-1;
if theaix<1 then theaix:=max;
until (Allied_Fleet[theano,theaix]<>0) or
(theaix=Cur_Ctl);
end;
end;
1: ixloc:='t'; {switch to theater}
2: ixloc:='p'; {switch to port}
13: begin
if (ixloc='p') then {switch ship from port to}
begin {theater}
with Allied_Navy[portix] do
if (Fleet=0) and (Status<>9) and
((Theater=0) or (Theater=theano)) then
begin
theaix:=0;
repeat
theaix:=theaix+1;
until (theaix>cmax) or (Allied_Fleet[theano,theaix]=0);
if theaix<=cmax then
begin
Fleet:=theano;
Allied_Fleet[theano,theaix]:=portix;
end
else
theaix:=cmax;
end;
end
else
begin
i:=Allied_Fleet[theano,theaix]; {switch ship from theater}
if i>0 then {to port}
begin
Allied_Navy[i].Fleet:=0;
Allied_Fleet[theano,theaix]:=0;
end;
end;
TheaWind(theano);
Ships_in_Port;
end;
115,
83: begin {Display status}
if (ixloc='p') and (Allied_Navy[portix].Fleet=0) and
(Allied_Navy[portix].Status<>9) then
DispStatus(portix);
if ixloc='t' then
begin
i:=Allied_Fleet[theano,theaix];
if i<>0 then
DispStatus(i);
end;
end;
63: begin
Restore;
Windx:=16; {Setup window}
Windy:=8;
Winddx:=33;
Winddy:=11;
Border(Windx,windy,winddx,winddy,1,15,0);
Window(Windx+1,Windy+1,Windx+Winddx-2,Windy+winddy-2);
ClrScr;
Gotoxy(5,9); {Display static data}
FastWrite('PRESS ANY KEY TO CONTINUE',7,0,1);
Gotoxy(1,1);
FastWrite(' Up/Down cursors select ship',7,0,1);
Gotoxy(1,2);
FastWrite(' Left/Right switch theater/port',7,0,1);
Gotoxy(1,3);
FastWrite(' ENTER moves ship',7,0,1);
Gotoxy(1,4);
FastWrite(' END completes selection',7,0,1);
Gotoxy(1,5);
FastWrite(' S or s displays ship status',7,0,1);
Gotoxy(1,6);
FastWrite(' Space advances theater',7,0,1);
Gotoxy(1,7);
FastWrite(' Q or q terminates game ',7,0,1);
Window(1,1,80,25);
uncursor;
Kbdrd;
Restore;
TheaWind(theano);
end;
end; {case}
if l<>32 then {Clear cursor unless theater}
begin {changed}
Gotoxy(cx,cy); {Clear cursor}
Fastwrite(' ',7,0,3);
end;
end;
until (l=5) or (quitsw=1); {End inputted}
For i:=1 to ships do
begin
with Allied_Navy[i] do
if (Fleet=0) and (Status<>9) and (Damage>0) then
Damage:=Damage-1;
end;
For i:=1 to 20 do {Shuffle list index}
list[i]:=i;
For i:=1 to 50 do
begin
j:=random(20)+1;
k:=random(20)+1;
l:=list[j];
list[j]:=list[k];
list[k]:=l;
end;
Max_Ships:=0;
For i:=1 to theacnt do {Clear fleet counts}
begin {and set max fleet cnt}
Axis_Fleet_Count[i]:=1; {allowed}
Theamax[i]:=Theater[i].max;
Max_Ships:=Max_Ships+Theamax[i];
end;
Assg_Ships:=0;
For n:=1 to 20 do {Move fixed theater ships}
with Axis_navy[n] do {to theater}
begin
if Max_Ships>Assg_Ships then
begin
if (Theater<>0) and (status<>9) and
(Axis_Fleet_Count[Theater]<=Theamax[Theater]) then
begin
Fleet:=Theater;
Axis_Fleet[theater,Axis_Fleet_Count[Theater]]:=n;
Axis_Fleet_Count[Theater]:=Axis_Fleet_Count[Theater]+1;
Assg_Ships:=Assg_Ships+1;
end;
end;
end;
n:=0; {Randomly select rest of}
For i:=1 to 20 do {axis fleets}
begin
with Axis_Navy[list[i]] do {pick ship}
begin
if Max_Ships>Assg_Ships then
begin
if (fleet=0) and (status<>9) and (damage<(defense/2)) then
begin
repeat
n:=n+1; {select theater}
if n>theacnt then n:=1;
{gotoxy(1,1);write(max_Ships,' ',assg_Ships);read(kbd,c);}
until Axis_Fleet_Count[n]<=Theamax[n];
Fleet:=n;
Axis_Fleet[n,Axis_Fleet_Count[n]]:=list[i];
Axis_Fleet_Count[n]:=Axis_Fleet_Count[n]+1;
Assg_Ships:=Assg_Ships+1;
end;
end;
end;
end;
For i:=1 to 20 do
begin
with Axis_Navy[i] do
if (Fleet=0) and (Status<>9) and (Damage>0) then
Damage:=Damage-1;
end;
if quitsw<>1 then
begin
For m:=1 to theacnt do
TheaWind(m);
gotoxy(20,24);
Fastwrite('PRESS ANY KEY TO CONTINUE',15,0,1);
uncursor;
Kbdrd;
gotoxy(1,1);
end;
end;
Procedure Up_Axis_Cnt(n:integer); {Increment Axis ship/sub counters}
begin
If Axis_Navy[n].Model='S' then Axis_Sub_Cnt:=Axis_Sub_Cnt+1
else Axis_Ship_Cnt:=Axis_Ship_Cnt+1;
end;
Procedure Up_Allied_Cnt(n:integer); {Increment Allied ship/sub counters}
begin
If Allied_Navy[n].Model='S' then Allied_Sub_Cnt:=Allied_Sub_Cnt+1
else Allied_Ship_Cnt:=Allied_Ship_Cnt+1;
end;
Procedure ReCalc(tn:integer); {Rearrange and reorder}
begin {ships in theater to}
{eliminate blank spots}
Allied_Ship_Cnt:=0;
Allied_Sub_Cnt:=0;
For i:=1 to Theater[tn].max do
begin
if Allied_Fleet[tn,i]=0 then
begin
for j:=(i+1) to Theater[tn].max do
begin
if Allied_Fleet[tn,j]<>0 then
begin
Allied_Fleet[tn,i]:=Allied_Fleet[tn,j];
Allied_Fleet[tn,j]:=0;
Up_Allied_Cnt(Allied_Fleet[tn,i]);
j:=Theater[tn].max;
end;
end;
end
else
Up_Allied_Cnt(Allied_Fleet[tn,i]);
end;
Allied_Total:=Allied_Ship_Cnt+Allied_Sub_Cnt;
Axis_Ship_Cnt:=0;
Axis_Sub_Cnt:=0;
For i:=1 to Theater[tn].max do
begin
if Axis_Fleet[tn,i]=0 then
begin
for j:=(i+1) to Theater[tn].max do
begin
if Axis_Fleet[tn,j]<>0 then
begin
Axis_Fleet[tn,i]:=Axis_Fleet[tn,j];
Axis_Fleet[tn,j]:=0;
Up_Axis_Cnt(Axis_Fleet[tn,i]);
j:=Theater[tn].max;
end;
end;
end
else
Up_Axis_Cnt(Axis_Fleet[tn,i]);
end;
Axis_Total:=Axis_Ship_Cnt+Axis_Sub_Cnt;
TheaWind(tn);
Window(66,3,80,24);
gotoxy(1,21);
end;
Procedure HiLite(as,xs:integer);
begin
Allied_Ship_No:=Allied_Fleet[Theano,as];
Axis_Ship_No:=Axis_Fleet[Theano,xs];
with theater[theano] do
begin
Window(x+1,y+1,x+23,y+max+2);
if as <> 0 then
begin
gotoxy(2,as+1);
with Allied_Navy[Allied_Ship_No] do
Fastwrite(ID,0,15,1);
end;
if xs <> 0 then
begin
gotoxy(13,xs+1);
with Axis_Navy[Axis_ship_No] do
Fastwrite(ID,0,15,1);
end;
end;
end;
Procedure Do_Return;
begin
if quitsw<>1 then
begin
Writeln;
Writeln('PRESS ANY KEY');
Writeln('TO CONTINUE.');
Window(1,24,80,25);
ClrScr;
Gotoxy(15,1);
FastWrite(Temp_Name+' Battle Phase',15,0,1);
uncursor;
Kbdrd;
Window(66,1,80,25);
ClrScr;
Recalc(Theano);
Theawind(Theano);
end;
end;
Procedure Battle_Results; {Calculate and display battle results}
begin
ReCalc(theano);
TheaWind(theano);
Window(66,3,80,24);
ClrScr;
Gotoxy(2,2);
Writeln('BATTLE RESULTS');
Writeln;
if ((Axis_Ship_Cnt>0) and (Allied_Sub_Cnt>0)) or
((Allied_Ship_Cnt>0) and (Axis_Sub_Cnt>0)) or
(Allied_Ship_Cnt=Axis_Ship_Cnt) then {I.E. Are both=0}
begin
writeln(' Battle is');
writeln(' a draw');
end
else
begin
if Allied_Ship_Cnt>0 then
begin
Victory_Points:=Victory_Points+1;
for n:= 1 to Allied_Total do
begin {See if Convoy survived}
with Allied_Navy[Allied_Fleet[theano,n]] do
begin
if model='V' then
begin
Victory_Points:=Victory_Points+1; {increment VP}
Fleet:=0; {remove convoy}
Status:=9;
Allied_Fleet[theano,n]:=0;
Writeln(' Convoy VP');
end;
end;
end;
Temp_name:=Allied_Name;
end
else
begin
Victory_Points:=Victory_Points-1;
for n:= 1 to Axis_Total do
begin {See if Convoy survived}
with Axis_Navy[Axis_Fleet[theano,n]] do
begin
if model='V' then
begin
Victory_Points:=Victory_Points-1; {increment VP}
Fleet:=0; {remove convoy}
Status:=9;
Axis_Fleet[theano,n]:=0;
Writeln(' Convoy VP');
end;
end;
end;
Temp_name:=Axis_Name;
end;
Writeln(' '+Temp_name);
Writeln(' wins battle');
end;
Writeln;
Writeln(' Turn ',Turn);
Writeln(' VPs = ',abs(Victory_Points));
Writeln(' of ',Victory_Points_to_win);
Writeln(' needed to win');
Writeln;
Temp_Name:=Axis_Name;
if Victory_Points>0 then Temp_Name:=Allied_Name;
Writeln(' '+Temp_Name);
Writeln(' advantage');
Do_Return;
end;
Procedure Do_Attack(as,ts:integer);
var Target_Total,Attacker_Total,
Target_Ship_Cnt,Attacker_Ship_Cnt,
Target_Sub_Cnt,Attacker_Sub_Cnt:integer;
Target_Fleet,Attacker_Fleet:Fleet_Kind;
Target:Ship;
Attacker:Ship;
begin
If Temp_Name=Axis_Name then
begin
Target_Total:=Allied_Total;
Target_Ship_Cnt:=Allied_Ship_Cnt;
Target_Sub_Cnt:=Allied_Sub_Cnt;
Target:=Allied_Navy[Allied_Fleet[theano,ts]];
Target_Fleet:=Allied_Fleet[theano];
Attacker_Fleet:=Axis_Fleet[theano];
Attacker:=Axis_Navy[Axis_Fleet[theano,as]];
i:=as;
j:=ts;
end
else
begin
Target_Total:=Axis_Total;
Target_Ship_Cnt:=Axis_Ship_Cnt;
Target_Sub_Cnt:=Axis_Sub_Cnt;
Target:=Axis_Navy[Axis_Fleet[theano,ts]];
Target_Fleet:=Axis_Fleet[theano];
Attacker_Fleet:=Allied_Fleet[theano];
Attacker:=Allied_Navy[Allied_Fleet[theano,as]];
i:=ts;
j:=as;
end;
if (Target_Total>0) and ((Attacker.Model<>'S') or
((Attacker.Model='S') and (Round=1) and
((Target.Model<>'S') and
(Target.Model<>'K') and
(Target.Model<>'P')))) then
begin
HiLite(j,i);
Window(66,3,80,24);
ClrScr;
gotoxy(1,1);
writeln(Temp_Name);
writeln('ATTACK RESULTS');
writeln;
Writeln(Attacker.ID);
Writeln('attacking');
Writeln(Target.ID);
Writeln;
Writeln('Turn ',Turn);
Writeln('Round ',Round);
Writeln('Shot ',scnt,' of ',Attacker.attack);
Writeln;
j:=5;
k:=Random(6)+1;
if (Attacker.Model='D') and (Target.Model='S') then k:=6;
if (Attacker.Model<>'D') and (Target.Model='S')then j:=6;
if Attacker.Model='A' then j:=4;
if attacker.Model='K' then j:=3;
if k<j then
begin
Writeln('MISS');
Writeln;
end
else
begin
if Attacker.Model='K' then
begin {remove kamikazi}
Attacker.Fleet:=0;
Attacker.Status:=9;
Attacker_Fleet[as]:=0;
If Temp_Name=Axis_Name then xcnt:=xcnt-1
else acnt:=acnt-1;
scnt:=Attacker.attack;
end;
if k=j then
begin
Writeln('DISABLED');
Target.Fleet:=0; {move target yo port}
Target_Fleet[ts]:=0;
Writeln;
end
else
begin
Writeln('HIT!!!!');
l:=random(3)+1;
if attacker.model='K' then l:=random(8)+1; {set heavy hit from kamikazi}
if random(15)>=14 then l:=10; {randomly sink ship}
writeln('Damage = ',l,' Pts');
writeln;
with Target do
begin
Damage:=Damage+l;
If damage >= Defense then
begin
Status:=9;
Writeln(ID);
Writeln('has been sunk.');
writeln;
Fleet:=0;
Target_Fleet[ts]:=0;
end;
end;
end;
end;
If Temp_Name=Axis_Name then
begin
Allied_Navy[Allied_Fleet[theano,ts]]:=Target;
Allied_Fleet[theano]:=Target_Fleet;
Axis_Navy[Axis_Fleet[theano,as]]:=Attacker;
Axis_Fleet[theano]:=Attacker_Fleet;
end
else
begin
Axis_Navy[Axis_Fleet[theano,ts]]:=Target;
Axis_Fleet[theano]:=Target_Fleet;
Allied_Navy[Allied_Fleet[theano,as]]:=Attacker;
Allied_Fleet[theano]:=Attacker_Fleet;
end;
Do_Return;
end;
end;
Procedure Axis_Combat;
begin
if (Axis_Total>0) and (Allied_Total>0) then
begin
Temp_Name:=Axis_Name;
Sub_Shots:=Allied_Ship_Cnt;
for xcnt:= 1 to Axis_Total do
begin
with Axis_Navy[Axis_Fleet[TheaNo,xcnt]] do
begin
if model = 'S' then attack:=Sub_Shots;
scnt:=1;
while (scnt<=attack) and (Allied_Total>0) and (quitsw<>1) do
begin
acnt:=random(Allied_Total)+1;
Do_Attack(xcnt,acnt);
scnt:=scnt+1;
end;
end;
end;
end;
end;
Procedure Do_Battle;
begin
with Allied_Navy[Allied_Fleet[theano,acnt]] do
begin
Window(1,24,80,25);
ClrScr;
Gotoxy(12,1);
FastWrite('Attacker and target are highlighted. Enter ? for help.',15,0,1);
HiLite(acnt,xcnt);
uncursor;
key:=cursor;
case key of
5 : scnt:=attack; {complete firing}
4 : begin {cursor down}
xcnt:=xcnt+1;
if xcnt>Axis_Total then xcnt:=1;
end;
3 : begin {cursor up}
xcnt:=xcnt-1;
if xcnt<1 then xcnt:=Axis_Total;
end;
115,83 : DispStatus(Allied_Fleet[theano,acnt]); {status}
13 : begin
Do_Attack(acnt,xcnt); {do attack}
scnt:=scnt+1; {incr shot counter}
end;
119,87 : begin {withdraw}
scnt:=-1; {signal to get out}
Fleet:=0; {of loop}
Allied_Fleet[theano,acnt]:=0;
acnt:=acnt-1;
ReCalc(theano);
end;
63 : begin
Window(1,1,80,25);
Restore;
Windx:=16; {help window}
Windy:=8;
Winddx:=33;
Winddy:=11;
Border(Windx,windy,winddx,winddy,1,15,0);
Window(Windx+1,Windy+1,Windx+Winddx-2,Windy+winddy-2);
ClrScr;
Gotoxy(5,9); {Display static data}
FastWrite('PRESS ANY KEY TO CONTINUE',7,0,1);
Gotoxy(1,1);
FastWrite(' Up/Down cursors select target',7,0,1);
Gotoxy(1,2);
FastWrite(' ENTER fires on target',7,0,1);
Gotoxy(1,3);
FastWrite(' W or w withdraws attacker',7,0,1);
Gotoxy(1,4);
FastWrite(' END completes firing',7,0,1);
Gotoxy(1,5);
FastWrite(' S or s displays ship status',7,0,1);
Gotoxy(1,6);
FastWrite(' Q or q terminates game',7,0,1);
Window(1,1,80,25);
uncursor;
kbdrd;
Restore;
TheaWind(theano);
HiLite(acnt,xcnt);
end;
end; {case}
ReCalc(theano);
TheaWind(theano);
if xcnt>Axis_Total then xcnt:=Axis_Total;
end;
end;
Procedure Allied_Combat;
begin
if (Allied_Total>0) and (Axis_Total>0) then
begin
ReCalc(theano);
Sub_Shots:=Axis_Ship_Cnt;
acnt:=1;
xcnt:=1;
repeat
begin
Temp_Name:=Allied_Name;
with Allied_Navy[Allied_Fleet[TheaNo,acnt]] do
begin
if model = 'S' then attack := Sub_Shots;
if (model<>'S') or ((model = 'S') and (Round < 2)) then
begin
scnt:=1;
begin
repeat
if Axis_Total>0 then Do_Battle;
{Note:scnt is incremented in Do_Battle when
key is 13. It is set to -1 when ship withdrawn}
until (key=5) or (key=119) or (key=87) or
(scnt>attack) or (scnt<1) or (Axis_Total=0) or
(Allied_Total=0) or (quitsw=1);
end;
end;
end;
end;
acnt:=acnt+1;
until (acnt>Allied_Total) or (Allied_Total=0) or (Axis_Total=0) or
(quitsw=1);
end;
end;
Procedure Do_Combats;
begin
For TheaNo:=1 to TheaCnt do
begin
ReCalc(Theano); {Recalculate and position}
Round:=1;
init_no:=Random;
repeat
begin
TheaWind(TheaNo); {Display Theater}
If (init_no < init_factor) then {Randomly determine the}
begin {initative}
if quitsw <> 1 then Axis_Combat;
if quitsw <> 1 then Allied_Combat;
end
else
begin
if quitsw <> 1 then Allied_Combat;
if quitsw <> 1 then Axis_Combat;
end;
end;
Round:=Round+1;
until (Allied_Ship_Cnt=0) or (Axis_Ship_Cnt=0) or (quitsw=1);
if quitsw<>1 then
begin
Battle_Results;
Window(1,1,80,25);
Restore;
end;
end;
end;
begin
Randomize;
GetPic(PicName); {Load map}
Victory_Points:=0; {Initialize victory point count}
Turn:=1;
repeat
Snapshot(3);
if quitsw <> 1 then Pick_Fleets; {Pick Allied and Axis fleets}
if quitsw <> 1 then Snapshot(3);
if quitsw <> 1 then Do_Combats; {Do combat in each theater}
turn:=turn+1;
until (abs(Victory_Points)>=Victory_Points_to_win) or (quitsw=1) or
(turn>10);
if quitsw<>1 then
begin
Window(1,1,80,25);
ClrScr;
for m:=2 to 9 do
Border(m+10,m,59-(2*m),25-(2*m),1,7,0);
Temp_Name:=Allied_Name;
If Victory_Points<0 then Temp_Name:=Axis_Name;
if turn<11 then
begin
Gotoxy(33,11);
LowVideo;
Writeln('WINNER OF THE');
end;
Gotoxy(34,12);
Writeln('CAMPAIGN IS');
NormVideo;
Gotoxy(35,13);
If (abs(Victory_Points)>=Victory_Points_to_win) then Writeln(Temp_Name)
else Writeln(' A DRAW');
Uncursor;
Kbdrd;
end;
Clrscr;
end.